package cn.schoolwow.workflow.module.task.action.kit;

import cn.schoolwow.workflow.domain.task.CompleteTaskRequest;
import cn.schoolwow.workflow.domain.task.TaskType;
import cn.schoolwow.workflow.domain.task.type.AddSignTaskRequest;
import cn.schoolwow.workflow.domain.task.type.AssignTaskRequest;
import cn.schoolwow.workflow.domain.task.type.BackTaskRequest;

public interface WorkFlowTaskActionService {
    /**
     * 完成任务
     * @param taskId 任务id
     * @param taskType 完成任务类型
     * @return 实例是否结束
     * */
    boolean completeTask(long taskId, TaskType taskType);

    /**
     * 完成任务
     * @param completeTaskRequest 完成任务请求
     * @return 实例是否结束
     * */
    boolean completeTask(CompleteTaskRequest completeTaskRequest);

    /**
     * 转交任务
     * @param assignTaskRequest 转交任务请求
     * */
    void assignWorkFlowTask(AssignTaskRequest assignTaskRequest);

    /**
     * 回退任务
     * @param backTaskRequest 回退任务请求
     * */
    void backWorkFlowTask(BackTaskRequest backTaskRequest);

    /**
     * 加签任务
     * @param addSignTaskRequest 加签请求
     * */
    void addSignWorkFlowTask(AddSignTaskRequest addSignTaskRequest);

}
